Tokens no IXC ACS
Introducción
La autenticación de IXC ACS se basa en JWTs (JSON Web Tokens), una forma autocontida de token que carga en su payload un objeto JavaScript y una firma digital. Los JWTs utilizados en ACS se firman utilizando claves ECDSA (Elliptic Curve Digital Signature Algorithm).
Estructura de un JWT
Un JWT está compuesto por tres partes principales:
- Cabezajo: Contiene información sobre el tipo de firma utilizado en Token.
- Corpo: Almacena datos relacionados con el usuario creador de Token, su destinatario e información del propio Token.
- Assinatura: Contiene una firma digital de las dos partes anteriores del Token.
El formato estándar de un JWT es:
xxxxxx.yyyyyy.zzzzzzDonde: -xxxxxx: Cabecera codificada en base64Url -yyyyyy: Cuerpo codificado en base64Url -zzzzzz: Firma codificada en base64Url
Detallamiento de las Partes del JWT
- *Codificado:**``` eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9
* *Decodificado:**
```json
{
"alg": "ES256",
"typ": "JWT"
}-typ: Especifica que el documento es del tipo JWT. -alg: Especifica el algoritmo criptográfico usado en la firma (siempre ES256 para Tokens de la API IXC ACS).
Cuerpo
- *Codificado:**``` eyJpc3MiOiI2MTg1ODMyNGRlNmNlZjAwMTFmNTFiMDUiLCJleHAiOjE2MzgyMTU3MDgsImlhdCI6MTYzODIxNDcwOH0
* *Decodificado:**
```json
{
"iss": "61858324de6cef0011f51b05",
"exp": 1638215708,
"iat": 1638214708
}-iss: Identificador del emisor de JWT (ID del Client API). -exp: Timestamp UNIX de expiración de Token. -iat: Timestamp UNIX de creación de Token.
Firma
- *Codificado:**``` F1DRaeJcQ1oG8Nc33R0iSEBppEGFUQmLFKDzAaX3e9I2sTLZT0qOerw8nUhbcogAZsZpwQdQdAnU4B0SKIvBDA
La firma se genera automáticamente usando la clave privada del emisor de Token.
## Proceso de creación y uso de Token
1. Añada los datos necesarios al cuerpo de Token.
2. Assine Token usando el algoritmo ES256 y su clave privada.
3. Use Token generado para solicitar un Token de Acceso.
4. Envíe el Token como Bearer Token a la variable de autenticación de la API.
## Consideraciones de seguridad
- Mantenga sus llaves privadas seguras.
- Use HTTPS para todas las comunicaciones que involucran JWTs.
- Implemente rotación regular de claves para aumentar la seguridad.
## Lea también
- [Preset no ACS](./preset%20no%20acs)
- [Projetos ACS](../projetos%20acs)
- [Protocolo TR-069](./protocolo%20tr-069)